//
//  Environment.h
//  AntSimulation
//

#ifndef __AntSimulation__Environment__
#define __AntSimulation__Environment__

#include <iostream>
#include <list>
#include <typeinfo>
#include <Windows.h>//for cursor position, color,...
#include "Area.h"



class Environment {
    
private:
    static Environment* pInstance;
    static Area* pEntry;
    static int nAreaCounter;
    Environment();
    ~Environment(void);
    
    // Ausdehnung setzen
    void Expand(int m, int n);
    void AddHorizontal(Area* pwest, Area* peast);
    void AddVertical(Area* pnorth, Area* psouth);
    
    // aktuelle Ausdehnung Environment M und N
    static int nCurM;
    static int nCurN;
    
public:
    static Environment* getInstance(int m, int n);
	static Area* getEntryArea();
    
    // aktuelle Ausdehnung Environment M und N
    static int getCurM();
    static int getCurN();
    
    void PrintEnvironment();
    void PrintEnvironmentViewable();
	void jPrintEnvironment();
    
    void act();

    int init_Env(int cntAnthill, int cntFoodsource, int cntStartFood);
    
};


#endif /* defined(__AntSimulation__Environment__) */
